package com.heo.pub;

public class DictEnum {
	public static class RedisKey {
		/**
		 * 用来保存设备的控制信息，包括设备当前状态
		 */
		public static final String DEVICE_CONTROL = "[DEVICE_CONTROL]";
		/**
		 * 用来保存设备的回调信息
		 */
		public static final String CALLBACK_INFO = "[CALLBACK_INFO]";
		/**
		 * 用来保存设备的锁定状态
		 */
		public static final String LOCK_STATUS = "[LOCK_STATUS]";
	}

	public static class CallBackType {
		/**
		 * 启动设备结果
		 */
		public static final String START_RESULT = "START_RESULT";
		/**
		 * 设备状态报告
		 */
		public static final String STATUS_REPORT = "STATUS_REPORT";
	}

	public static class GetDeviceCodeResultCode {
		/**
		 * 操作成功
		 */
		public static final byte SUCCESS = 0x00;
		/**
		 * 设备或通道不存在
		 */
		public static final byte DEVICE_OR_CHANNEL_IS_NOT_EXIST = 0x01;
		/**
		 * 设备停用
		 */
		public static final byte DEVICE_IS_STOP = 0x02;
		/**
		 * 设备的通道停用
		 */
		public static final byte DEVICE_CHANNEL_IS_STOP = 0x03;
		/**
		 * 其他错误
		 */
		public static final byte UNKNOW_ERROR = 0x04;
	}

	public static class StartResultCode {
		/**
		 * 启动设备结果
		 */
		public static final byte SUCCESS = 0x01;
		/**
		 * 设备状态报告
		 */
		public static final byte FAIL = 0x00;
	}

	public static class StartResultMsg {
		/**
		 * 启动设备结果
		 */
		public static final String SUCCESS = "设备已收到启动指令";
		/**
		 * 设备状态报告
		 */
		public static final String FAIL = "设备接收启动指令失败";
	}

	/**
	 * 设备通道的工作状态
	 */
	public static class DeviceChannelStatusCode {
		/**
		 * 空闲状态
		 */
		public static final byte FREE = 0x00;
		/**
		 * 启动成功状态
		 */
		public static final byte START_SUCCESS = 0x01;
		/**
		 * 工作中状态
		 */
		public static final byte WORKING = 0x02;
		/**
		 * 工作结束状态
		 */
		public static final byte WORK_DONE = 0x03;
		/**
		 * 设备故障
		 */
		public static final byte DEVICE_ERROR = 0x04;
		/**
		 * 通道故障
		 */
		public static final byte DEVICE_CHANNEL_ERROR = 0x05;
	}
	
	/**
	 * 设备通道的工作状态
	 */
	public static class DeviceStatus {
		/**
		 * 空闲状态
		 */
		public static final String FREE = "00";
		/**
		 * 等待用户按按钮
		 */
		public static final String SEND_SUCCESS = "01";
		/**
		 * 工作中状态
		 */
		public static final String WORKING = "02";
		/**
		 * 放水完成，无输出
		 */
		public static final String WORK_DONE = "03";
		/**
		 * 放水失败，无输出（按钮指示灯熄灭）（30秒内用户没按按钮）
		 */
		public static final String WORK_FAIL_4 = "04";
		/**
		 * 放水失败，无输出（按钮指示灯熄灭）（脉冲计费模式下出水阀有输出但检测不到脉冲）
		 */
		public static final String WORK_FAIL_5 = "05";
	}

	public static class DeviceStatusCode {
		/**
		 * 空闲状态
		 */
		public static final String FREE = "01";
		/**
		 * 工作状态
		 */
		public static final String WORKING = "00";
		/**
		 * 启动中
		 */
		public static final String STARTING = "03";
	}

	public static class DeviceChannelStatusMsg {
		/**
		 * 空闲状态
		 */
		public static final String FREE = "空闲";
		/**
		 * 启动成功状态
		 */
		public static final String START_SUCCESS = "启动成功";
		/**
		 * 工作中状态
		 */
		public static final String WORKING = "工作中";
		/**
		 * 工作结束状态
		 */
		public static final String WORK_DONE = "工作完成";
		/**
		 * 设备故障
		 */
		public static final String DEVICE_ERROR = "设备故障";
		/**
		 * 通道故障
		 */
		public static final String DEVICE_CHANNEL_ERROR = "设备通道故障";
		/**
		 * 通道故障
		 */
		public static final String UNKNOW_ERROR = "未知错误";
	}

	/**
	 * 登录结果
	 */
	public static class LoginResult {
		/**
		 * 登录成功
		 */
		public static final byte SUCCESS = 0x00;
		/**
		 * 消息结构错误
		 */
		public static final byte MSG_STRUCT_ERROR = 0x01;
		/**
		 * 用户名或密码错误
		 */
		public static final byte USERNAME_OR_PASSWORD_ERROR = 0x02;
		/**
		 * 版本太高
		 */
		public static final byte VER_TOO_HIGH = 0x03;
		/**
		 * 消息参数错误
		 */
		public static final byte PARA_ERROR = 0x04;
		/**
		 * 已达到系统处理上限
		 */
		public static final byte SERVER_IS_BUSY = 0x05;
		/**
		 * 未知错误
		 */
		public static final byte UNKNOW_ERROR = 0x06;
		/**
		 * 需要更新登录密码
		 */
		public static final byte UPDATE_LOGIN_PASSWORD = 0x07;
		/**
		 * 需要使用出厂密码登录
		 */
		public static final byte USE_DEFAULT_LOGIN_PASSWORD = 0x08;
		/**
		 * 设备在规定的位置以外地区登录
		 */
		public static final byte LOGIN_LOCATION_ERROR = 0x09;
	}

	public static class LoginType {
		/**
		 * IMEI号登录
		 */
		public static final byte IMEI_LOGIN = 0x00;
		/**
		 * MAC登录
		 */
		public static final byte MAC_LOGIN = 0x01;
		/**
		 * SN登录
		 */
		public static final byte SN_LOGIN = 0x02;
	}

	/**
	 * 连接类型
	 */
	public static class SocketMode {
		/**
		 * 短连接
		 */
		public static final byte LONG = 0x00;
		/**
		 * 长连接
		 */
		public static final byte SHORT = 0x01;
	}

	/**
	 * 重传方式
	 */
	public static class ReSend {
		/**
		 * 要重传
		 */
		public static final byte YES = 0x00;
		/**
		 * 不要重传
		 */
		public static final byte NO = 0x01;
	}

	/**
	 * 调试模式
	 */
	public static class DebugMode {
		/**
		 * 调试模式
		 */
		public static final byte YES = 0x00;
		/**
		 * 正常运行模式
		 */
		public static final byte NO = 0x01;
	}

	/**
	 * 断开链路时返回消息代码
	 */
	public static class ResultCode {
		/**
		 * 主动断开成功
		 */
		public static final short SUCCESS = 0x0000;
		/**
		 * 用户未登录
		 */
		public static final short NOT_LOGIN = 0x0001;
		/**
		 * 消息结构错误
		 */
		public static final short STRUCT_ERROR = 0x0002;
		/**
		 * 指令代码错误，指令代码不存在
		 */
		public static final short COMMAND_ERROR = 0x0003;
		/**
		 * 重复的链路错误，即一个用户登录了2个链路，前一个链路要断开
		 */
		public static final short DUPLICATE_LINK_ERROR = 0x0004;
		/**
		 * 设备是锁定状态
		 */
		public static final short DEVICE_IS_LOCK = 0x0005;
	}

	/**
	 * 返回给控制系统的结果代码
	 */
	public static class MessageEntity {
		/**
		 * 操作成功
		 */
		public static final String SUCCESS = "SUCCESS";
		/**
		 * 设备不在线
		 */
		public static final String DEVICE_IS_NOT_ONLINE = "DEVICE_IS_NOT_ONLINE";
		/**
		 * 设备不在线
		 */
		public static final String DEVICE_IS_NOT_EXIST = "DEVICE_IS_NOT_EXIST";
		/**
		 * 未知错误
		 */
		public static final String UNKNOW_ERROR = "UNKNOW_ERROR";
		/**
		 * 队列已满
		 */
		public static final String QUEUE_IS_FULL = "QUEUE_IS_FULL";
		/**
		 * 未知的指令类型
		 */
		public static final String UNKNOW_COMMAND_ID = "UNKNOW_COMMAND_ID";
		/**
		 * 指令格式错误
		 */
		public static final String COMMAND_ERROR = "COMMAND_ERROR";
		/**
		 * 请求类型错误
		 */
		public static final String REQUEST_TYPE_ERROR = "REQUEST_TYPE_ERROR";
		/**
		 * 请求参数错误
		 */
		public static final String REQUEST_PARA_ERROR = "REQUEST_PARA_ERROR";
		/**
		 * 固件文件不存在
		 */
		public static final String FIRMWARE_FILE_IS_NOT_EXIST = "FIRMWARE_FILE_IS_NOT_EXIST";
	}

	/**
	 * 修改设备密码的返回结果
	 * 
	 * @author chichi
	 *
	 */
	public static class EditPasswordResultCode {
		/**
		 * 修改成功
		 */
		public static final byte SUCCESS = 0x00;
		/**
		 * 密码不符合规则
		 */
		public static final byte PASSWORD_RULE_ERROR = 0x01;
		/**
		 * 禁止使用此功能
		 */
		public static final byte DENY_EDIT_PASSWORD = 0x02;
		/**
		 * 未知错误
		 */
		public static final byte UNKNOW_ERROR = 0x03;
	}
	
	
	/**
	 * 修改设备密码的返回结果
	 * 
	 * @author chichi
	 *
	 */
	public static class UploadStatusCode {
		/**
		 * 开锁上传
		 */
		public static final String OPEN_UPLOAD = "0001";
		/**
		 * 关锁上传
		 */
		public static final String CLOSE_UPLOAD = "0010";
	}
}